home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nibble Magazine
/
nib10.dsk
/
DUAL COL PRINTER FOR TOUGH.bas
< prev
next >
Wrap
BASIC Source File
|
2023-02-26
|
3KB
|
73 lines
1 REM *****************************
2 REM * DUAL COLUMN PRINTER *
3 REM * FOR T.O.U.G.H *
4 REM * BY HAL CLARK *
5 REM * COPYRIGHT (C) 1982 *
6 REM * BY MICRO-SPARC INC *
7 REM * LINCOLN, MA. 01773 *
8 REM * ALL RIGHTS RESERVED *
9 REM *****************************
10 TEXT : HOME : CLEAR : VTAB 4
30 PRINT TAB( 5);"DUAL COLUMN PRINTER"
40 PRINT TAB( 5);"FOR THE T.O.U.G.H"
50 PRINT TAB( 5);"TEXT EDITOR."
60 PRINT "COPYRIGHT (C) - 1982, MICRO-SPARC, INC."
70 CR$ = CHR$(13): REM CARRIAGE RETURN
80 D$ = CHR$(4): REM CTRL/D
90 SP$ = " ": REM SPACE
100 I$ = CHR$(9):U$ = CHR$(27):CI$ = CHR$(20):LF$ = CHR$(10)
110 PRINT
120 PRINT "ENTER NAME OF FILE TO PRINT": INPUT NM$
130 GOSUB 140: GOTO 210
140 PRINT D$;"OPEN TFILE-";NM$
150 PRINT D$;"READ TFILE-";NM$
160 INPUT NL: REM NUMBER OF SAVED LINES
170 INPUT LL: REM LINE LENGTH
180 INPUT TV: REM TAB VALUE
190 PRINT D$
200 RETURN
210 INPUT "PAGE WIDTH (CHARS)";PW
220 MG = INT((PW -(LL *2))/3): REM MARGINS L,C,R
230 IF MG <0 THEN PRINT "CAN'T FIT "2 *LL" CHARS ON A "PW" CHAR PAGE": GOTO 210
240 PRINT "MARGINE WILL BE ";MG;" CHARS."
250 INPUT "ENTER MAX PAGE LENGTH (LINES) ";PL
260 INPUT "TOP/BOTTOM MARGINS (LINES) ";TB
270 INPUT "CONTINUOUS OR SINGLE SHEET PAPER? (C/S)";PT$
280 DIM PG$(PL)
290 PRINT D$;"PR# 1": REM TURN ON PRINTER
300 PRINT I$;"K": REM TURN OFF AUTO LINE FEED
310 PRINT U$;CI$: REM SELECT 16.7CPI
320 PRINT I$;PW;"N": REM SET MAS COLUMNS
330 PRINT U$;LF$: REM MAKE UP FOR THE FIRST LINE FEED
340 FOR I = 1 TO PL:PG$(I) = SP$ +CR$: NEXT I
350 FOR I1 = TB +1 TO PL -TB:PG$(I1) = ""
360 FOR I2 = 1 TO MG:PG$(I1) = PG$(I1) +SP$: NEXT I2
370 PRINT D$;"READ TFILE-";NM$
380 INPUT CL$: REM CURRENT LINE
390 PG$(I1) = PG$(I1) +CL$
400 I = LL +MG - LEN(CL$)
410 IF I >0 THEN I = I -1:PG$(I1) = PG$(I1) +SP$: GOTO 410
420 NL = NL -1: IF NL = 0 THEN I1 = PL -TB
430 NEXT I1
440 I = TB
450 IF I >0 THEN I = I -1: PRINT SP$: GOTO 450
460 FOR I1 = TB +1 TO PL -TB
470 CL$ = "": IF NL = 0 THEN 510
480 PRINT D$;"READ TFILE-";NM$
490 INPUT CL$
500 PRINT D$
510 PRINT PG$(I1);CL$
520 IF NL >0 THEN NL = NL -1
530 NEXT I1
540 I = TB
550 IF I >0 THEN I = I -1: PRINT SP$: GOTO 550
560 IF NL >0 AND PT$ = "C" THEN 340
570 IF NL >0 THEN PRINT I$;"40N": PRINT D$;"PR#0": PRINT "PLACE NEW PAGE IN PRINTER": INPUT "PRESS 'RETURN' WHEN READY";A$: GOTO 290
580 PRINT D$;"CLOSE"
590 PRINT I$;"40N"
600 PRINT D$;"PR# 0": REM TURN OFF PRINTER
610 PRINT "PRINT ANOTHER COPY?"
620 INPUT " (S-SAME, D-DIFFERENT, N-NONE)";A$
630 IF A$ = "S" THEN GOSUB 140: GOTO 290
640 IF A$ = "D" THEN GOTO 10
650 END